home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / dev / e / framework.lha / fw / primeStream.e < prev    next >
Encoding:
Text File  |  1996-01-28  |  2.3 KB  |  55 lines

  1.  
  2. -> Copyright © 1995, Guichard Damien.
  3.  
  4. OPT MODULE
  5. OPT EXPORT
  6.  
  7. OBJECT primeStream
  8.   stream:PTR TO INT
  9.   pos:PTR TO INT
  10. ENDOBJECT
  11.  
  12. -> Create a stream of prime numbers.
  13. PROC create() OF primeStream
  14.   self.stream := [ 1,
  15.        2,    3,    5,    7,   11,   13,   17,   19,   23,   29,
  16.       31,   37,   41,   43,   47,   53,   59,   61,   67,   71,
  17.       73,   79,   83,   89,   97,  101,  103,  107,  109,  113,
  18.      127,  131,  137,  139,  149,  151,  157,  163,  167,  173,
  19.      179,  181,  191,  193,  197,  199,  211,  223,  227,  229,
  20.      233,  239,  241,  251,  257,  263,  269,  271,  277,  281,
  21.      283,  293,  307,  311,  313,  317,  331,  337,  347,  349,
  22.      353,  359,  367,  373,  379,  383,  389,  397,  401,  409,
  23.      419,  421,  431,  433,  439,  443,  449,  457,  461,  463,
  24.      467,  479,  487,  491,  499,  503,  509,  521,  523,  541,
  25.      547,  557,  563,  569,  571,  577,  587,  593,  599,  601,
  26.      607,  613,  617,  619,  631,  641,  643,  647,  653,  659,
  27.      661,  673,  677,  683,  691,  701,  709,  719,  727,  733,
  28.      739,  743,  751,  757,  761,  769,  773,  787,  797,  809,
  29.      811,  821,  823,  827,  829,  839,  853,  857,  859,  863,
  30.      877,  881,  883,  887,  907,  911,  919,  929,  937,  941,
  31.      947,  953,  967,  971,  977,  983,  991,  997, 1009, 1013,
  32.     1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069,
  33.     1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151,
  34.     1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223,
  35.     1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291,
  36.     1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1369,
  37.     1373, 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447,
  38.     1451, 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499,
  39.     1511, 1517, 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571,
  40.     1579, 1583, 1591, 1597, 1601, 1607, 1609, 1613, 1619, 1621,
  41.     1627, 1637, 1657, 1663, 1667, 1669, 1681, 1693, 1697, 1699,
  42.     1709, 1721, 1723, 1733, 1739, 1741, 1747, 1753, 1759, 1763,
  43.     1777, 1783, 1787, 1789, 1801, 1811, 1823, 1831, 1847, 1849,
  44.     1861, 1867, 1871, 1873, 1877, 1879, 1889, 1901, 1907, 1913,
  45.     1927, 1931, 1933, 1949, 1951, 1961, 1973, 1979, 1987, 1993,
  46.     1997, 1999 ]
  47.   self.pos:=self.stream
  48. ENDPROC
  49.  
  50. -> Next prime number.
  51. PROC next() OF primeStream
  52.   self.pos:=self.pos+SIZEOF INT
  53. ENDPROC self.pos[]
  54.  
  55.